componentDidMount() is invoked immediately after a component is mounted (inserted into the tree).
Initialization that requires DOM nodes should go here.
If you need to load data from a remote endpoint, this is a good place to instantiate the network request.
This method is a good place to set up any subscriptions. If you do that, don’t forget to unsubscribe in componentWillUnmount().
This guarantees that even though the render() will be called twice in this case, the user won’t see the intermediate state.
Use this pattern with caution because it often causes performance issues. In most cases, you should be able to assign the initial state in the constructor() instead.
It can, however, be necessary for cases like modals and tooltips when you need to measure a DOM node before rendering something that depends on its size or position.